package com.example.basesystem.service;

import com.example.basesystem.common.Result;
import com.example.basesystem.dto.LoginDTO;
import com.example.basesystem.dto.RegisterDTO;
import com.example.basesystem.vo.InfoVo;
import com.example.basesystem.vo.LoginVO;

/**
 * 认证服务接口
 */
public interface AuthService {

    /**
     * 用户登录
     *
     * @param loginDTO 登录信息
     * @return 登录结果
     */
    Result<LoginVO> login(LoginDTO loginDTO);

    /**
     * 用户注册
     *
     * @param registerDTO 注册信息
     * @return 注册结果
     */
    Result<Object> register(RegisterDTO registerDTO);

    /**
     * 退出登录
     *
     * @return 退出结果
     */
    Result<Object> logout();
    
    /**
     * 验证验证码
     *
     * @param key 验证码key
     * @param code 验证码
     * @return 验证结果
     */
    boolean validateCaptcha(String key, String code);

    /**
     * 获取用户信息
     *
     * @return 用户信息
     */
    Result<InfoVo> info();
}